package main

import (
	"fmt"
)

//定义结构体
type Cat struct {
	Name  string
	Age   int
	Color string
	Hobby string
}

func main() {
	//第一种声明方式
	// var cat1 Cat
	// cat1.Name = "xb"
	// cat1.Age = 3
	// cat1.Color = "red"
	// cat1.Hobby = "fish"

	// fmt.Println("cat1=", cat1)

	// fmt.Println("详细信息如下：")
	// fmt.Println("Name=", cat1.Name)
	// fmt.Println("Age=", cat1.Age)
	// fmt.Println("Color=", cat1.Color)
	// fmt.Println("Hobby=", cat1.Hobby)

	//第二种声明方式
	// var cat2 Cat = Cat{"xh", 12, "yellow", "eat"}
	// fmt.Println(cat2)

	//第三种声明方式
	// var cat3 *Cat = new(Cat)
	// cat3.Name = "xh"
	// (*cat3).Age = 2
	// cat3.Color = "green"
	// (*cat3).Hobby = "sleep"

	// fmt.Println(*cat3)

	//第四种声明方式
	var cat3 *Cat = &Cat{"xh", 22, "green", "sleep2"}
	// cat3.Name = "xh"
	// (*cat3).Age = 22
	// cat3.Color = "green"
	// (*cat3).Hobby = "sleep"

	fmt.Println(*cat3)
}
